home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / util / cdity / IFX.lha / IFX / AmigaE / play / play.e < prev    next >
Text File  |  1997-12-03  |  1KB  |  47 lines

  1. OPT PREPROCESS
  2.  
  3. MODULE '*sound'
  4. MODULE 'graphics', 'dos/rdargs', 'dos/dos'
  5.  
  6. PROC main()
  7.     DEF rdargs:PTR TO rdargs, list:PTR TO LONG
  8.     rdargs := ReadArgs('NAME/A', list, NIL)
  9.     play(list[])
  10.     FreeArgs(rdargs)
  11. ENDPROC
  12.  
  13. PROC play(name)
  14.     DEF snd:sound
  15.     NEW snd
  16.     
  17.     WriteF('\s...', name)
  18.     IF snd
  19.         IF snd.load(name)=NIL
  20.             WriteF('Playing ')
  21.             
  22.                 -> Tell user type
  23.             IF snd.type="DTYP" THEN WriteF('using datatypes...')
  24.             IF snd.type="8SVX" THEN WriteF('as 8SVX...')
  25.             IF snd.type="RAW" THEN WriteF('as RAW...')
  26.             
  27.                 -> Play sounds
  28.             IF snd.play(2) THEN WriteF('Channel 2 failed..')
  29.             IF snd.play(3) THEN WriteF('Channel 3 failed..')
  30.             WriteF('Waiting...')
  31.             Wait((snd.sigbits() OR SIGBREAKF_CTRL_C))
  32.             WriteF('Done.\n')
  33.             
  34.                 -> Output sample info
  35.             WriteF('Played \d samples @ \d samples per second.\n', snd.length, snd.rate())
  36.             
  37.                 -> Give accurate playing time
  38.             WriteF('Time spent playing was: \d milliseconds.\n', ((snd.length * 1000) / snd.rate()))
  39.         ELSE
  40.             WriteF('Load failed.\n')
  41.         ENDIF
  42.         END snd
  43.     ELSE
  44.         WriteF('Out of memory!\n')
  45.     ENDIF
  46. ENDPROC
  47.